Linux System
Table of Contents
系统
uname
Unix name
$ uname -a # 打印操作系统的所有信息
> Linux master 3.10.0-1160.81.1.el7.x86_64 #1 SMP Fri Dec 16 17:29:43 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
date
$ date # 现实系统时间
> Fri 07 Apr 2023 02:16:35 AM EDT
$ date +"%Y-%m-%d %H:%M:%S" # 格式化输出时间
> 2023-04-07 02:16:52
$ date -s "01:01:01 2022-08-09" # 设置时间
df
disk free
$ df # 显示系统磁盘占用信息, 默认以 KB 为单位
$ df -h # 容量数据以 MB 为单位
$ df -h # 容量信息智能添加单位
> Filesystem Size Used Avail Use% Mounted on
> udev 3.9G 0 3.9G 0% /dev
> tmpfs 796M 41M 755M 6% /run
> /dev/sda1 58G 17G 39G 30% /
du
disk usage: 查看文件或文件夹占用大小
$ du <arg> <file> # 显示目录占用空间大小
$ du -s <file> # --summarize 只显示总计占用
$ du -h <file> # --human-readable 添加单位
$ du * # 列出所有文件及大小
> 97764 go20.tar.gz
> 4 host.txt
> 24 mongo.tar.gz
$ du -h # 智能显示单位
> 4.0K ./test
> 834M .
free
$ free # 显示系统内存占用(KB)
$ free -m # 以 MB 为单位显示
$ free -g # 以 GB 为单位显示
$ free -h # 智能显示单位
total used free shared buff/cache available
> Mem: 7.8Gi 1.2Gi 5.3Gi 41Mi 1.3Gi 6.3Gi
> Swap: 974Mi 0B 974Mi
ps
process status: 进程状态
$ ps <opt> # 显示系统进程状态
$ ps aux # 显示系统所有进程的详细信息
> USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
> root 1 0.0 0.1 104188 10472 ? Ss Apr02 0:03 /sbin/init
> root 2 0.0 0.0 0 0 ? S Apr02 0:00 [kthreadd]
> root 3 0.0 0.0 0 0 ? I< Apr02 0:00 [rcu_gp]
systemctl
systemctl control
$ systemctl <opt> <service> # 设置某项服务
$ systemctl start <service> # 启动nfs服务
$ systemctl enable <service> # 设置开机自启动
$ systemctl disable <service> # 停止开机自启动
$ systemctl status <service> # 查看服务当前状态
$ systemctl restart <service> # 重新启动某服务
$ systemctl list-units --type=service # 查看所有已启动的服务
$ systemctl status docker
> ● docker.service - Docker Application Container Engine
> Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
> Active: active (running) since Sun 2023-04-02 20:24:38 EDT; 4 days ago
> Docs: https://docs.docker.com
> Main PID: 704 (dockerd)
> ......
netstat : network statistics
$ netstat <opt> # 显示网络端口信息
$ netstat -a # 显示所有网络端口信息
$ netstat -t # 显示 TCP 网络端口信息
$ netstat -u # 显示 UDP 网络端口信息
$ netstat -l # --listening 显示处于监听状态的端口
$ netstat -anlp | grep 22
> tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 577/sshd
> tcp 0 0 10.0.2.15:22 10.0.2.2:61110 ESTABLISHED 19205/sshd: root@no
> tcp6 0 0 :::22 :::* LISTEN 577/sshd
ifconfig
network interfaces configuring
$ ifconfig # 显示网络接口配置和参数
> enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
> inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255
> inet6 fe80::a00:27ff:fe2e:3801 prefixlen 64 scopeid 0x20<link>
> ether 08:00:27:2e:38:01 txqueuelen 1000 (Ethernet)
> RX packets 1226712 bytes 239728472 (228.6 MiB)
> RX errors 0 dropped 0 overruns 0 frame 0
> TX packets 857854 bytes 146145492 (139.3 MiB)
> TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
> ......
kill
$ kill <opt> <pid> # 杀死进程
$ kill -9 <pid> # 强制杀死 <pid> 进程
$ killall <name> # 杀死所有名字为 <name> 进程
$ pkill -o <name> # 杀死 <name> 进程中进程号最小的
$ pkill -n <name> # 杀死 <name> 进程中进程号最大的
$ sleep 300 & # 后台执行 sleep 指令
> [1] 23287 # 系统返回后台的进程 pid
$ kill -9 23287 # 根据 pip 杀死指定进程
> [1] + 23287 killed sleep 300
硬盘挂载
设置硬盘临时挂载
# 查看所有块设备 (sdb 未挂载)
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 62M 1 loop /snap/core20/1587
loop1 7:1 0 79.9M 1 loop /snap/lxd/22923
loop2 7:2 0 47M 1 loop /snap/snapd/16292
sda 252:0 0 40G 0 disk
└─sda1 252:1 0 40G 0 part /
sdb 252:16 0 200G 0 disk
$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 1.6G 1.1M 1.6G 1% /run
/dev/sda1 40G 6.4G 31G 18% /
tmpfs 7.7G 0 7.7G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1.6G 4.0K 1.6G 1% /run/user/0
# 挂载磁盘到 /root/disk 路径(路径必须存在, 重启则挂载失效)
$ mount /dev/sdb /root/disk
设置硬盘永久挂载
# 查看机器硬盘 (sdb 未挂载)
$ lsblk
$ df -h
# 获取设备 UUID(返回为空, 则先格式化再获取 UUID)
$ blkid /dev/sdb1
/dev/sdb: UUID="3b6c12s6-67e5-5bcs-a15a-ecb6c7dc68ab" BLOCK_SIZE="4096" TYPE="ext4"
# 格式化磁盘(能获取 UUID 则跳过格式化)
$ mkfs.ext4 /dev/sdb
# 将挂载信息写入 /etc/fstab, 每次重启都自动挂载
# <file system> <mount point> <type> <options> <dump> <pass>
# UUID作为设备id 挂载路径 文件类型 挂载选项 dump 备份 根文件系统 1
$ vi /etc/fstab
UUID=3b6c12s6-67e5-5bcs-a15a-ecb6c7dc68ab /root/disk ext4 defaults 0 1
# 根据 /etc/fstab 配置自动挂载
$ mount -a
# 卸载已挂载的盘(无进程访问挂载路径)
$ umount /root/disk